/*    
 * Copyright (c) 2013 ISoftStone, Inc.
 * All right reserved.
 *
 * 文件名：      IAccountItemService.java
 * 作者:     Jacky Wang
 * 创建日期： 2013-7-25 下午03:02:25
 * 版本：           
 *
 */
package com.isoftstone.industry.aaa.core.service.assist;

import java.util.List;

import com.isoftstone.industry.persistance.bean.AccountItem;
import com.isoftstone.industry.persistance.bean.AccountItemType;
import com.isoftstone.industry.persistance.bean.BillingCycle;
import com.isoftstone.industry.persistance.bean.PricingInfoSnapshot;
import com.isoftstone.industry.persistance.bean.ProductInstance;
import com.isoftstone.modules.core.service.IGenericService;

/**
 *
 * @author jacky
 */
public interface IAccountItemService extends IGenericService<AccountItem, String>
{
	AccountItem createAccountItem(AccountItemType acctItemType, ProductInstance prodInst, Double amount, PricingInfoSnapshot pricingInfoSnapshot, BillingCycle billingCycle);

	List<AccountItem> findNeedAccountingAccountItems(String userId, BillingCycle billingCycle);

	void changeStatus(String acctItemId, String status);
	
	List<AccountItem> findNonChargeOffItemsByUser(String userId);
	
	List<AccountItem> findPrePaidItems(String userId, String billingCycleId);
	
	List<AccountItem> findNeedPaidItems(String billId);
	
	//List<AccountItem> findNeedPrepaidItems(String userId);
	
	List<AccountItem> findOwningPrepaidItems(String userId);
}
